#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <string>

using namespace std;

string s;
int n;

int main()
{
    cin >> s;
    n = s.size();

    bool flag = false;
    for (int i = 1; i < n; i++)
    {
        if (s[0] != s[i])
        {
            flag = true;
            break;
        }
    }

    if (flag == false)
    {
        cout << 0 << endl;
        return 0;
    }
    else
    {
        int left = 0, right = n - 1;
        while (left < right)
        {
            if (s[left] == s[right])
            {
                left++, right--;
            }
            else {
                flag = false;
                break;
            }
        }
    }
    if (flag) cout << n - 1;
    else cout << n;

    return 0;
}

//#include <algorithm>
//#include <iostream>
//using namespace std;
//
//long long a, b, h, k, ret;
//
//int main()
//{
//    cin >> a >> h >> b >> k;
//
//    int n = min(h / b, k / a);
//
//    h -= n * b;
//    k -= n * a;
//
//    if (h > 0 && k > 0)
//    {
//        h -= b;
//        k -= a;
//        ret += a + b;
//    }
//
//    if (h > 0) ret += 10 * a;
//    if (k > 0) ret += 10 * b;
//
//    ret += n * (a + b);
//
//    cout << ret << endl;
//
//    return 0;
//}